package edu.uwm.cs552;

import java.awt.Point;

import javax.swing.ImageIcon;


/**
 * A potential edit action that can be applied to a hex board
 * at a particular point.
 */
interface HexBoardEditAction {
	public static final int ICON_SIZE = 20;
	
	/**
	 * Perform the action at the given point on a hex board.
	 * @param hexBoard hex board to apply to, must not be null
	 * @param p point on screen, must not benull
	 * @param scale scale of hexagons (pixels per hexagon width)
	 */
	public void apply(HexBoard hexBoard, Point p, double scale, double bound);

	/**
	 * Get string to label this edit action.
	 * @return
	 */
	public String getLabel();

	/**
	 * Return icon for this edit action.
	 * @return
	 */
	public ImageIcon getIcon();
}